FIG. 1 shows schematically a Global Navigation Satellite System (GNSS) 1 comprising a plurality of satellites 4 emitting signals directed to a plurality of receivers 2 and local elements 3 (only one of which is shown in FIG. 1), communicating with each other in a manner known per se and hence not described in detail. Each receiver 2 is generally enclosed in a corresponding user terminal configured to execute high level software applications based on the data provided by the receiver 2. From a technical point of view, each receiver 2 may be regarded as a radio-frequency (RF) front-end of the corresponding user terminal, namely the networking part of the user terminal, as opposed to the application part, comprising a user interface and the aforementioned high level applications.
Each satellite 4 transmits signals modulated by a pseudorandom sequence (PN sequence) characteristic of the satellite 4. Furthermore, signals emitted by each satellite 4 contain a navigation message, in turn containing, besides data suited to improve the accuracy in the calculation of the receiver position, the ephemeris of the satellite, namely mathematical functions describing the satellite orbit in a highly precise manner. Therefore, based on the information carried by the signals, each receiver 2 computes its distance from the satellite 4. In particular, the receiver 2 computes the propagation time of the signal from the satellite 4 to the receiver 2, namely the time difference between the emission time, that is the time at which the satellite 4 emits the signal, and the reception time, that is the time at which the receiver 2 receives the same signal. Afterwards, an approximate estimate of the satellite-receiver distance is obtained by multiplying the propagation time by the light speed; such an approximate estimate of the satellite-receiver distance is known as pseudorange. Pseudoranges related to different satellites (generally, at least four satellites, as shown in FIG. 2) are then used to compute an estimate of the receiver position, as it will be explained below in more detail.
In some cases, upon having determined the pseudoranges, instead of computing an estimate of its position, the receiver 2 sends the pseudoranges to a local element 3, which is in charge of computing the estimate of the receiver position, and sending the estimation back to the receiver 2. In particular GNSSs, generally known as Assisted Global Navigation Satellite Systems (A-GNSSs), the satellite ephemeris are provided to the receiver 2 by the local elements 3, so that the receiver 2 does not have to extract them from the navigation messages. Based on the pseudoranges and the received ephemeris, the receiver 2 computes an estimate of its position. In particular A-GNSSs, generally known as A-GNSS “User Equipment Assisted”, the receiver 2 just computes estimates of the pseudoranges and send them to a local element 3, which is in charge of all the remaining operations (solving ambiguities in fractional pseudorange measurements, computing the position, . . . ).
More in detail, the receiver position, represented by a position vector, is computed by means of N pseudoranges related to N corresponding satellites, whose signals are received by the receiver 2. Nevertheless, it has to be noted that a pseudorange is the distance between the position of the corresponding satellite 4 at the transmission time and the position of the receiver 2 at the reception time. Because the satellite clock and the receiver clock are not perfectly synchronized, it is impossible to compute the exact distance between a satellite 4 and a receiver 2.
Neglecting errors induced by propagation, multipath interferences and receiver errors, the basic definition of the pseudorange ρj relative to the j-th satellite is:ρj=Rj+c·(δj−δ)  (1)Rj=ƒ(X,Y,Z)=√{square root over ((Xj(t)−X)2+(Yj(t)−Y)2+(Zj(t)−Z)2)}{square root over ((Xj(t)−X)2+(Yj(t)−Y)2+(Zj(t)−Z)2)}{square root over ((Xj(t)−X)2+(Yj(t)−Y)2+(Zj(t)−Z)2)}  (2)wherein:                Xj, Yj, Zj are the j-th satellite position coordinates;        X, Y, Z are the receiver position coordinates;        c is the light speed;        δj and δ are respectively, the j-th satellite clock offset and the receiver clock offset; and        
Rj is the geometric distance between the j-th satellite and the receiver 2, and is a function of the time, as well as the pseudorange ρj (with Rj computed at the transmission time).
The coordinates X, Y, Z of the receiver position form the aforementioned receiver position vector, hereinafter indicated by [X, Y, z]. The same applies to the coordinates Xj, Yj, Zj of the j-th satellite position, whose position vector is hereinafter indicated by [Xj, Yj, Zj].
Starting from equation (1), the receiver position vector [X,Y,Z], which is an unknown quantity, may be computed based on the computed pseudoranges Rj, the satellite position vector [Xj, Yj, Zj], and the satellite clock offset δj. In particular, the satellite position vector [Xj, Yj, Zj] is computed based on the transmission time, which is the difference between the reception time and the propagation time, and the received ephemeris, while the satellite clock offset δj is computed using correction parameters included in the navigation message.
The relationship between the computed pseudoranges, also known as observables, and the receiver position is not linear, as shown by equation (1), therefore known techniques are employed to obtain a linearized equation. According to said known techniques, an approximate receiver position is assumed, thus an approximate receiver position vector [X0, Y0, Z0] is chosen. This assumption implies that the receiver position can be regarded as a sum of the approximate receiver position and an adjustment factor. From a vectorial point of view, the receiver position vector [X, Y, Z] is the sum of the approximate receiver position vector [X0, Y0, Z0] and an adjustment vector [ΔX, ΔY, ΔZ]. Because of this assumption, the unknown quantities to be computed are the components ΔX, ΔY and ΔZ of the adjustment vector [ΔX, ΔY, ΔZ], as well as the satellite clock offset δ.
In order to compute the unknown quantities ΔX, ΔY ΔZ and 5, equation (1) is expanded in a Taylor's series truncated after the linear terms and centered around the approximate receiver position vector [X0, Y0, Z0], so obtaining:
                                          ρ            j                    -                      R            0            j                    -                      c            ·                          δ              j                                      =                                                            -                                                                                                    X                        j                                            ⁡                                              (                        t                        )                                                              -                                          X                      0                                                                            R                    0                    j                                                              ·              Δ                        ⁢                                                  ⁢            X                    -                                                                                                                Y                      j                                        ⁡                                          (                      t                      )                                                        -                                      Y                    0                                                                    R                  0                  j                                            ·              Δ                        ⁢                                                  ⁢            Y                    -                                                                                                                Z                      j                                        ⁡                                          (                      t                      )                                                        -                                      Z                    0                                                                    R                  0                  j                                            ·              Δ                        ⁢                                                  ⁢            Z                    -                      c            ·            δ                                              (        3        )                                                          ⁢                                                                              R                  0                  j                                =                                  f                  ⁡                                      (                                                                  X                        0                                            ,                                              Y                        0                                            ,                                              Z                        0                                                              )                                                                                                                          =                                                                                                    (                                                                                                            X                              j                                                        ⁡                                                          (                              t                              )                                                                                -                                                      X                            0                                                                          )                                            2                                        +                                                                  (                                                                                                            Y                              j                                                        ⁡                                                          (                              t                              )                                                                                -                                                      Y                            0                                                                          )                                            2                                        +                                                                  (                                                                                                            Z                              j                                                        ⁡                                                          (                              t                              )                                                                                -                                                      Z                            0                                                                          )                                            2                                                                                                                              (        4        )            In equation (3), all the unknown quantities (ΔX, ΔY, ΔZ and δ) are on the right hand of the equation, whereas the left hand is known. Because of the presence of four unknown quantities, in order to compute the receiver position is necessary to have at least four equations, that is it is necessary to receive signals from at least four satellites, so as to compute the corresponding pseudoranges. Generally, the number N of satellites, the signals of which are received by a receiver, ranges from four to twelve, depending on the satellite constellation geometry and on the receiver position, leading to a system of equations having more equations than unknown quantities, thus being apparently overdetermined. In reality, the observables are affected by errors and noise, therefore the system is not-consistent. This apparent inconsistency is resolved by means of the introduction of a noise vector e, leading to the following linearized pseudorange equation system:y=G·X+e  (5)wherein:                X is a vector [ΔX ΔY ΔZ δ] containing the coordinates of the adjustment vector [ΔX, ΔY, ΔZ] associated with the approximate receiver position vector [X0, Y0, Z0], which represents the centre of the Taylor's series, as well as the receiver clock offset δ;        G is a matrix having four columns and N rows, each row being associated with a corresponding satellite, the signal of which are received by the receiver;        y is a N-dimension vector containing the N pseudoranges, each deducted of the corresponding geometric distance ρj between the corresponding satellite and the receiver, thus depending on the approximate receiver position; and        the noise vector e is an N-dimension vector containing the errors of the components of the vector y.        
It is possible to demonstrate that each row of the matrix G can be expressed as:Gi=[ cos Eli cos Az1 cos Eli cos Azi sin Eli 1]  (6)
According to equation (6), each row of the matrix G depends on the elevation Eli and the azimuth Azi of the corresponding i-th satellite, namely on the receiver and satellite positions, the satellite position being a known quantity either from the ephemeris or the data contained in the navigation messages.
In known GNSSs, equation system (5) is used to iteratively compute estimates {circumflex over (X)} of vector X. In fact, by arbitrarily choosing an approximate receiver position, namely an approximate receiver position vector [X0,Y0,Z0], it possible to compute a corresponding approximation {tilde over (y)} of the vector y, as well as an approximation {tilde over (G)} of the matrix G. Afterwards, starting from the equation system (5) and neglecting the vector e, the equation system {tilde over (G)}·{circumflex over (X)}={tilde over (y)} may be solved and a first estimate {circumflex over (X)} of the vector X=[ΔX ΔY ΔZ δ] so computed, which computation involves the computation of an estimated receiver position vector [X1, Y1, Z1]. In fact, the estimated receiver position vector [X1, Y1, Z1] is given by the sum of the approximate receiver position vector [X0, Y0, Z0] and the adjustment vector [ΔX ΔY ΔZ], formed by the first three components of the computed vector X.
Afterwards, the estimated receiver position vector [X1, Y1, Z1] is used as a new approximate receiver position for the subsequent iteration in the computation of the estimate {circumflex over (X)} of the vector X. Based on the new approximate receiver position, a new approximate vector {tilde over (y)} of the vector y and a new approximation {tilde over (G)} of the matrix G are computed, so as to compute a new estimate {circumflex over (X)} of the vector X, and, consequently, a new estimate of the receiver position, by solving again the equation system {tilde over (G)}·Ŝ={tilde over (y)}. The described sequence of operations is then iterated until the difference between to consecutive estimates {circumflex over (X)} of the vector X is less than a predetermined threshold.
More in detail, the equation system G{tilde over (G)}·Ŝ={tilde over (y)} is solved by means of the least squares method, which uses the generalized inverse of the approximation {tilde over (G)} of the matrix G and leads to the equation:{circumflex over (X)}=generalised inverse of {tilde over (G)}·{tilde over (y)}=({tilde over (G)}T·{tilde over (G)})−1·{tilde over (G)}T·{tilde over (y)}  (7)
wherein {tilde over (G)}T is the transpose matrix of the matrix {tilde over (G)}, and the apex −1 indicates the inverse of the matrix it refers to.
From the foregoing, it may be appreciated that the receiver position vector [X, Y, Z] depends on the computed pseudoranges ρj, contained in the vector y and in the corresponding approximate vectors {tilde over (y)}. Since pseudoranges related to different satellites are affected by errors to different extents, each pseudorange is computed with a different accuracy degree, which affects the computation of the receiver position.
In order to improve the accuracy of the computed receiver position, the provision of a weight matrix in the computation of the receiver position has been recently proposed. For example, US2003/0036849 A1 discloses a track model constraint for GPS position wherein a diagonal pseudorange observation weight matrix is disclosed with diagonal entries which are the reciprocal of the variance entries of the pseudoranges.